<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // foreach 遍历
      var arr = ['aaa', 'bbb', 'ccc', 'ddd', 'xxx', 'zzz']
      // 回调函数(每一项，索引值,原数组)
      arr.forEach(function (item, index) {
        console.log(item, index) //aaa 0 ;bbb 1 ;ccc 2;ddd 3;xxx 4;zzz 5
      })
      //  arr.forEach(function (item, index, arr) {
      //   console.log(item, index, arr)
      // })

      // map 映射
      var arr1 = [1, 2, 3, 4, 5, 6, 7, 8]
      var res = arr1.map(function (item) {
        return item
      })
      console.log(res) // [1, 2, 3, 4, 5, 6, 7, 8]

      // filter 过滤 return 返回的是 true 就会加入新数组
      // 可以找到满足条件的所有项
      var arr2 = [1, 2, 3, 4, 5, 6, 7, 8]
      var res1 = arr2.filter(function (item) {
        return item > 4
      })
      console.log(res1) // [5, 6, 7, 8]
      // filter 过滤数组里的对象
      var arr3 = [
        {
          name: 'aaa',
          price: 200,
        },
        {
          name: 'bbb',
          price: 100,
        },
        {
          name: 'ccc',
          price: 300,
        },
      ]
      var res2 = arr3.filter(function (item) {
        return item.price > 100
      })
      console.log(res2) // [{ name: 'ccc', price: 300,}]

      // every 每一个
      // 每一项 都 满足条件  true
      // 有一项 不 满足条件  false
      // 如果第一项不满足 直接 false
      var arr4 = [80, 89, 99, 77, 92]
      var res3 = arr4.every(function (item) {
        return item > 85
      })
      console.log(res3) // false

      // some 只要一个条件满足 就是 true
      // 都不满足 false
      var arr5 = [80, 89, 99, 77, 92]
      var res4 = arr4.some(function (item) {
        return item > 85
      })
      console.log(res4) // true

      // find 找到满足的条件的第一项
      var arr6 = [
        {
          name: 'aaa',
          price: 200,
        },
        {
          name: 'bbb',
          price: 100,
        },
        {
          name: 'ccc',
          price: 100,
        },
      ]
      var res5 = arr6.find(function (item) {
        return item.price === 100
      })
      console.log(res5) //[ { name: 'bbb',price: 100,}]

      // reduce(回调函数，初始值) 累加
      // prev 上一次的结果  item 每一项
      var arr7 = [80, 89, 99, 77, 92]
      var res6 = arr7.reduce(function (prev, item) {
        return prev + item
      }, 0)
      console.log(res6) // 437
    </script>
  </body>
</html>
